package com.example.springboot.util;

import com.google.gson.Gson;
import org.springframework.validation.FieldError;
import org.springframework.validation.ObjectError;

import java.util.List;

public class Utils {

    /**
     * 提取错误集合中指定字段的错误
     * @param errors  全局错误,  字段错误
     * @param field
     * @return
     */
    public static String getErrors(List<ObjectError> errors, String field){
        if(errors==null){
            return "";
        }
        StringBuffer sb = new StringBuffer();
        for(ObjectError oe : errors){
            if(oe instanceof FieldError){
                // 字段错误 ==> field
                FieldError fe = (FieldError) oe;
                if(fe.getField().equals(field)){
                    if(sb.length()>0){
                        sb.append(",");
                    }
                    sb.append(fe.getDefaultMessage());
                }
            } else {
                // 对全局错误的 code 进行判断, 凭借code 的报错信息
                if(oe.getCode().equals(field)){
                    if(sb.length()>0){
                        sb.append(",");
                    }
                    sb.append(oe.getDefaultMessage());
                }
            }
        }
        return sb.toString();
    }

    public static String toJson(Object data){
        return new Gson().toJson(data);
    }
}
